Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Functional software architecture</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Functional_software_architecture"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Functional_software_architecture rootpage-Functional_software_architecture skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Functional software architecture</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>A <b>functional software architecture</b> (<b>FSA</b>) is an architectural model that identifies <a href="Enterprise_architecture" title="Enterprise architecture">enterprise</a> functions, interactions and corresponding <a href="Information_technology" title="Information technology">IT</a> needs. These functions can be used as a reference by different <a href="Domain_expert" class="mw-redirect" title="Domain expert">domain experts</a> to develop IT-systems as part of a co-operative information-driven enterprise. In this way, both <a href="Software_engineer" class="mw-redirect" title="Software engineer">software engineers</a> and enterprise architects can create an information-driven, integrated organizational environment.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>When an integrated software system needs to be developed and implemented several tasks and corresponding responsibilities can normally be divided:
</p>
<ol><li>Strategic management and business consultants set objectives in relation to a more efficient/effective business process.</li>
<li>Enterprise engineers come up with a design of a more efficient business process and a request for a certain information system in the form of an Enterprise Architecture.</li>
<li>Software engineers come up with the design of this information system, which describes the components and structural features of the system by use of a certain <a href="Architecture_description_language" title="Architecture description language">architecture description language</a> (ADL).</li>
<li>Computer programmers code the different modules and actually implement the system.</li></ol>
<p>The described work division is in reality much more complex and also involves more actors but it outlines the involvement of people with different backgrounds in creating a software system that enables the organization to reach business objectives. A wide variety of material produced by different actors within this system development process needs to be exchanged between, and understood by, multiple actors.
</p><p>Especially in the field of software engineering many tools (A4 Tool, CAME, <a href="ARIS_Express" title="ARIS Express">ARIS</a>), <a href="Computer_languages" class="mw-redirect" title="Computer languages">languages</a> (ACME, Rapide, <a href="Unified_Modeling_Language" title="Unified Modeling Language">UML</a>) and methods (<a href="Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a>, <a href="IBM_Rational_Unified_Process" class="mw-redirect" title="IBM Rational Unified Process">RUP</a>, <a href="ISPL" class="mw-redirect" title="ISPL">ISPL</a>) are developed and extensively used. Also, the transition between the software engineers (step 3) and computer programmers (step 4) is already highly formalized by, for instance, <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented</a> development.
</p><p>Setting strategic objectives (step 1) and the corresponding search for business opportunities and weaknesses is a subject extensively discussed and investigated for more than a hundred years. Concepts like <a href="Business_process_reengineering" class="mw-redirect" title="Business process reengineering">business process reengineering</a>, <a href="Product_software_market_analysis" class="mw-redirect" title="Product software market analysis">product software market analysis</a>, and <a href="Requirements_analysis" title="Requirements analysis">requirements analysis</a> are commonly known and extensively used in this context. These strategic inputs must be used for the development of a good enterprise design (step 2), which can then be used for software design and implementation respectively.
</p><p>Recent studies have shown that these enterprise architectures can be developed by several different methods and techniques. Before these methods and techniques are discussed in detail a definition of an <a href="Enterprise_architecture" title="Enterprise architecture">enterprise architecture</a> is given:
</p>
<dl><dd><i>An Enterprise Architecture is a strategic information asset base, which defines the mission, the information necessary to perform the mission and the technologies necessary to perform the mission, and the transitional processes for implementing new technologies in response to the changing mission needs.</i></dd></dl>
<p>This definition emphasizes the use of the architecture as a rich strategic information source for the improvement of business processes and development of needed information systems. If defined, maintained, and implemented effectively, these institutional blueprints assist in optimizing the interdependencies and interrelationships among an organization's business operations and the underlying IT that support operations.
</p><p>Having read the definition of functional software architecture at the beginning of this entry we can see a functional software architecture as a type of enterprise architecture that can be used as a rich reference for the development of an integrated information system. Naming it a functional software architecture encourages practitioners to use it as a strategic input for a <a href="Technical_architecture" class="mw-redirect" title="Technical architecture">technical architecture</a>. A formal mapping between functional software architecture and a type of <a href="Architecture_description_language" title="Architecture description language">ADL</a> is therefore needed. In this way, the formal use and reuse of enterprise architectures as strategic input for software architectures can be realized.
</p>
<div class="mw-heading mw-heading2"><h2 id="Development">Development</h2></div>
<p>As the boundary of an enterprise is extended, it becomes increasingly important that a common "big picture" of needed business, people and IT system activities is developed and shared by all the parties involved.<sup id="cite_ref-Kim_1-0" class="reference"><a href="#cite_note-Kim-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> A functional software architecture does this by breaking down the organization in business functions and corresponding IT needs. In this way, the enterprise engineer provides a rich schematic reference that can be used by the software engineer in the development of these IT-systems.
</p><p>The development of a functional software architecture can be done by a number of (combined) methods and techniques. Filling in the "gap" between the enterprise engineers and software engineers through the use of different combinations of methods and techniques will be the main objective. However, this objective can only be reached when combined methods result in clear and rich functional software architectures that are developed and used by both parties.
</p><p>Optimizing the internal and external business processes through process reengineering is one of the main objectives an enterprise can have in times of high external pressure. A <a href="Business_process" title="Business process">business process</a> involves value-creating activities with certain inputs and outputs, which are interconnected and thereby jointly contribute to the outcome (product or service) of the process. Process reengineering covers a variety of perspectives on how to change the organization. It is concerned with the redesign of strategic, value-adding processes, systems, policies and organizational structures to optimize the processes of an organization.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Modeling_the_business">Modeling the business</h2></div>
<p>Within the area of <a href="Enterprise_engineering" title="Enterprise engineering">enterprise engineering</a> formal methodologies, methods and techniques are designed, tested and extensively used in order to offer organizations reusable business process solutions:
</p>
<ul><li>Computer-integrated manufacturing open systems architecture (CIMOSA) methodology<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></li>
<li>Integrated definition (IDEF) methodology<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li>
<li>Petri Nets<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li>
<li>Unified modeling language (UML) or unified enterprise modeling language (UEML)<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li>Enterprise Function Diagrams (EFD)</li></ul>
<p>These methodologies/techniques and methods are all more or less suited in modeling the enterprise and its underlying processes. So, which of them are suited for the further development of information technology systems that are needed for effective and efficient (re)designed processes? More important, why using a time-consuming enterprise methodology when information and software engineers can’t or won’t use the unclear results in the development of efficiency enabling IT systems? Before we can give the answers to these questions some short descriptions of the listed methods above are given.
</p>
<div class="mw-heading mw-heading3"><h3 id="Computer-integrated_manufacturing_open_systems_architecture">Computer-integrated manufacturing open systems architecture</h3></div>
<p><a href="CIMOSA" title="CIMOSA">CIMOSA</a> provides templates and interconnected modeling constructs to encode business, people and IT aspects of enterprise requirements. This is done from multiple perspectives: information view, function view, resource view, and organization view. These constructs can further be used to structure and facilitate the design and implementation of detailed IT systems.
</p><p>The division in different views makes it a clarifying reference for enterprise and software engineers. It shows information needs for different enterprise functionalities (activities, processes, operations) and corresponding resources. In this way, it can easily be determined which IT-system will fulfill the information needs in a certain activity and process.
</p>
<div class="mw-heading mw-heading3"><h3 id="Integrated_definition_(IDEF)">Integrated definition (IDEF)</h3></div>
<p><a href="IDEF" title="IDEF">IDEF</a> is a structured modeling technique, which was first developed for the modeling of manufacturing systems. It was already being used by the U.S. Airforce in 1981. Initially, it had 4 different notations to model an enterprise from a certain viewpoint. These were <a href="IDEF0" title="IDEF0">IDEF0</a>, <a href="IDEF1" class="mw-redirect" title="IDEF1">IDEF1</a>, IDEF2 and <a href="IDEF3" title="IDEF3">IDEF3</a> for functional, data, dynamic and process analysis respectively. In the past decades, several tools and techniques for the integration of the notations are developed incrementally.
</p><p>IDEF clearly shows how a business process flows through a variety of decomposed business functions with corresponding information inputs, outputs, and actors. Like CIMOSA, it also uses different enterprise views. Moreover, IDEF can be easily transformed into UML-diagrams for the further development of its systems. these positive characteristics make it a powerful method for the development of functional software architectures.
</p>
<div class="mw-heading mw-heading3"><h3 id="Petri_Nets">Petri Nets</h3></div>
<p><a href="Petri_net" title="Petri net">Petri nets</a> are known tools to model manufacturing systems.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> They are highly expressive and provide good formalisms for the modeling of <a href="Concurrent_system" class="mw-redirect" title="Concurrent system">concurrent systems</a>. The most advantageous properties are that of simple representation of states, concurrent system transitions, and capabilities to model the duration of transitions.
</p><p>Petri nets, therefore, can be used to model certain business processes with corresponding state and transitions or activities within and outputs. Moreover, Petri Nets can be used to model different software systems and transitions between these systems. In this way, programmers use it as a schematic coding reference.
</p><p>In recent years several attempts have shown that Petri nets can contribute to the development of business process integration. One of these is the Model Blue methodology, which is developed by <a href="IBM" title="IBM">IBM</a> Chinese Research Laboratory and outlines the importance of model-driven business integration as an emerging approach for building integrated platforms.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> A mapping between their Model Blue business view and an equivalent Petri Net is also shown, which indicates that their research closes the gap between business and IT. However, instead of Petri Nets they rather use their own Model Blue IT view, which can be derived from their business view through a transformation engine.
</p>
<div class="mw-heading mw-heading3"><h3 id="Unified_modeling_language">Unified modeling language</h3></div>
<p><a href="Unified_modeling_language" class="mw-redirect" title="Unified modeling language">UML</a> is a broadly accepted modeling language for the development of software systems and applications. The object-oriented community also tries to use UML for enterprise modeling purposes. They emphasize the use of enterprise objects or business objects from which complex enterprise systems are made. A collection of these objects and corresponding interactions between them can represent a complex business system or process. Where Petri Nets focus on the interaction and states of objects, UML focuses more on the business objects themselves. Sometimes these are called the "enterprise building blocks", which includes resources, processes, goals, rules, and metamodels.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Although UML in this way can be used to model an integrated software system it has been argued that the reality of business can be modeled with a software modeling language. In reaction, the object-oriented community makes business extensions for UML and adapts the language. UEML is derived from UML and is proposed as a business modeling language. The question remains if this business transformation is the right thing to do. It was earlier said that UML in combination with other "pure’ business methods can be a better alternative.
</p>
<div class="mw-heading mw-heading3"><h3 id="Enterprise_function_diagrams">Enterprise function diagrams</h3></div>
<p>EFD is a used modeling technique for the representation of enterprise functions and corresponding interactions. Different business processes can be modeled in these representations through the use of "function modules" and triggers. A starting business process delivers different inputs to different functions. A process flowing through all the functions and sub-functions creates multiple outputs. Enterprise function diagrams hereby give a very easy-to-use and detailed representation of a business process and corresponding functions, inputs, outputs, and triggers.
In this way, EFD has many similarities with IDEF0 diagrams, which also represent in a hierarchical way business processes as a combination of functions and triggers. The difference is that an EFD places the business functions in an organization's hierarchical perspective, which outlines the downstream of certain processes in the organization. On the contrary, IDEF0 diagrams show the responsibilities of certain business functions through the use of arrows. Also, IDEF0 has a clear representation of inputs and outputs of every (sub)function.
</p><p>EFD possibly could be used as a business front-end to a software modeling language like UML. The major resemblance with IDEF as a modeling tool indicates that it can be done. However, more research is needed to improve the EFD technique in such a way that formal mappings to UML can be made.<sup id="cite_ref-Kim_1-1" class="reference"><a href="#cite_note-Kim-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> about the complementary use of IDEF and UML has contributed to the acceptance of IDEF as business-front end. A similar study should be done with EFD and UML.
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-Kim-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-Kim_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Kim_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Kim &amp; Weston &amp; Hodgson &amp; Lee (2002); The complementary use of IDEF and UML. Information system engineering, Deajon University South Korea, Computers &amp; Industrial Engineering 50, 35–56.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">Zakarian &amp; Kusiak; Process analysis and reengineering: Department of Industrial Engineering, University of Iowa, USA, Computers &amp; Industrial Engineering 41, 135–150</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Beekman, (1989); European Committee for Standardization, ECN TC310 WG1, 1994</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">U.S. Airforce (1981); ICAM architecture part 1, Ohio, Air Force Materials Laboratory, Wright-Patterson</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">Peterson J.L. (1981); Petri net theory and the modeling of systems, Englewood Cliffs, N.J., Prentice Hall.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"># Marshall, C. (2000); Enterprise Modelling with UML, <style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-201-43313-3</bdi>, Addison-Wesley, MA.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><a href="Fran%C3%A7ois_Vernadat" title="François Vernadat">François Vernadat</a>; A vision for future work of the task force (IFAC-IFIP).</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text">Silva, M. and Valette, R. (1989); Petri nets and flexible manufacturing. Lecture Notes on Computer Science, 424, 374–417.</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text">Zhu et al. (2004); Model-driven business process integration and management: A case study with the Bank SinoPac regional service platform, IBM Corporation, Res. &amp; Dev. Vol. 48 No. 5/6.</span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">Eriksson &amp; Penker (1998); UML Toolkit, Wiley, New York.</span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-29" href="https://en.wikipedia.org/wiki/?title=Functional_software_architecture&amp;oldid=1303148170">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>